package com.kaifamiao.strings;

public class InternString {

    public static void main(String[] args) {

        // 引用变量 s 指向了 字符串常量池(字符串池) 中一个 String实例
        String s = "开发喵";

        // 引用变量 chars 指向了 堆内存中的 一个 char 数组实例
        char[] chars = { '开', '发', '喵' };
        // 引用变量 t 指向了 堆内存中的 一个 String实例
        String t = new String( chars );

        System.out.println( s == t ); // false

        // 若 字符串池 中【已存在】等于 当前String实例 的 字符串 (用equals(Object)比较)
        // 则返回 字符串池 中 该字符串 的首地址
        String x = t.intern();
        System.out.println( s == x ); // true

        System.out.println( "- - - - - - - - " );

        char[] array = {'五','星','出','东','方','利','中','国'};
        String p = new String(array);

        // 若 字符串池 中【不存在】等于 当前String实例 的 字符串 (用equals(Object)比较)
        // 则返回 将 当前String实例 放入到 字符串池 并返回该字符串的实例
        String f = p.intern();
        System.out.println( p == f ); // true

    }

}
